package com.longtop.perform.zb.index.web;

/**
 * 指标管理_查询Action类。
 * 
 * @author 杨向阳
 * @version 1.0
 * 
 */

import java.util.HashMap;
import java.util.List;

import com.longtop.framework.base.BaseAction;
import com.longtop.framework.common.QueryConditions;
import com.longtop.framework.common.QueryResult;
import com.longtop.framework.util.BeanUtil;
import com.longtop.framework.util.WebUtil;
import com.longtop.intelliweb.action.IActionContext;
import com.longtop.intelliweb.action.IInitContext;
import com.longtop.intelliweb.view.Dataset;
import com.longtop.intelliweb.view.ListDropDown;
import com.longtop.intelliweb.view.ListDropDownItem;
import com.longtop.perform.zb.index.service.IndexService;
import com.longtop.perform.zb.team.model.TZbTeam;
import com.longtop.perform.zb.team.service.TeamService;

public class IndexDropdownAction extends BaseAction {

	private final static String DATASET_INDEX = "Dataset_Index";

	/**
	 * 系统共用：初始化调用
	 */
	public void init(IInitContext context) {
		super.init(context);
	}

	/**
	 * 本页jsp：初始化业务数据(覆写父类方法)
	 */
	public void thisPageInit(IInitContext context) {

		ListDropDown LookupDropDown_Team = (ListDropDown) context.getControl("LookupDropDown_Team");
		TeamService zbTeamService = getBean(TeamService.BEAN_ID);
		List list = zbTeamService.loadTeam(null, 1, -1).getResultList();
		ListDropDownItem listDropDownItemItem = new ListDropDownItem();
		listDropDownItemItem.setName("item");
		listDropDownItemItem.setValue("");
		listDropDownItemItem.setLabel("请选择");
		LookupDropDown_Team.addItem(listDropDownItemItem);
		for (int i = 0; i < list.size(); i++) {
			TZbTeam zbTeam = (TZbTeam) list.get(i);
			ListDropDownItem listDropDownItem = new ListDropDownItem();
			listDropDownItem.setName(zbTeam.getTeamId());
			listDropDownItem.setValue(zbTeam.getTeamId());
			listDropDownItem.setLabel(zbTeam.getTeamName());
			LookupDropDown_Team.addItem(listDropDownItem);
		}

		// 调用Spring的业务逻辑类
		Dataset zbIndexDataset = null; // dataset数据集
		IndexService indexService = getBean(IndexService.BEAN_ID);

		// 获取页面上的dataset的结构
		zbIndexDataset = (Dataset) context.getDataset(DATASET_INDEX);

		// 验证数据集对象是否存在
		if (!WebUtil.validateDatasetExist(this, zbIndexDataset, DATASET_INDEX)) {
			return;
		}
		int pageSize = zbIndexDataset.getPageSize();

		// 设置定性
		QueryConditions queryConditions = WebUtil.createQueryConditions();
		QueryResult queryResult = indexService.loadIndex(queryConditions, 1, pageSize);
		try {
			BeanUtil.queryResultToDataset(queryResult, zbIndexDataset, false, true);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * 执行自定义查询
	 * 
	 * @param context
	 */
	public void searchIndex(IActionContext context) {

		// 调用公用方法
		commonQuery(context, true);
	}

	/**
	 * 执行翻页查询
	 * 
	 * @param context
	 */
	public void loadIndex(IActionContext context) {

		// 调用公用方法
		commonQuery(context, false);
	}

	/**
	 * 通用查询.将数据查询出来，拼装数据。
	 * 
	 * @param object
	 *            IInitContext或IActionContext
	 * @param initLoad
	 *            是否是本Action的初始化方法调用！
	 */
	private void commonQuery(IActionContext context, boolean ispage1) {

		// 调用Spring的业务逻辑类
		Dataset zbIndexDataset = null; // dataset数据集
		QueryConditions queryConditions = WebUtil.createQueryConditions(); // 查询条件辅助类
		
		IndexService zbIndexService = getBean(IndexService.BEAN_ID);
		// 获取页面上的dataset的结构
		zbIndexDataset = (Dataset) context.getDataset(DATASET_INDEX);

		// 验证数据集对象是否存在
		if (!WebUtil.validateDatasetExist(this, zbIndexDataset, DATASET_INDEX)) {
			return;
		}
		int pageNo = 1; // 当前第几页
		HashMap hashMap = new HashMap();
		// 取得界面传入的查询条件(必须设置command的submitForm=true)
		String indexId = context.getElementValue("Text_IndexId");// 指标代码
		String indexName = context.getElementValue("Text_IndexName");// 指标名
		String fitObject = context.getElementValue("Text_fitObject");// 适用对象
		String teamId = context.getElementValue("Text_TeamId");// 适用对象

		hashMap.put("indexId", indexId);
		hashMap.put("indexName", indexName);
		hashMap.put("fitObject", fitObject);
		hashMap.put("teamId", teamId);

		// 设置定性
		int pageSize = zbIndexDataset.getPageSize(); // 每页多少条记录
		// 是否第一页
		if (ispage1) {
			pageNo = 1;
		} else {
			pageNo = zbIndexDataset.getPageNo();
		}
		// 调用service层，依据条件查询第一页记录，并获取总页数
		
		queryConditions.setParameter("zbIndexSql.selectZbIndexList", "zbIndexSql.selectZbIndexListCount", hashMap);
		QueryResult queryResult = zbIndexService.loadLog(queryConditions, pageNo, pageSize);
		try {
			BeanUtil.queryResultToDataset(queryResult, zbIndexDataset, false, true);
		} catch (Exception e) {
			e.printStackTrace();
			hintErrorMessage(e.getMessage());
		}
	}

}
